package com.neuedu.wemall.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.neuedu.wemall.common.vo.ResponseData;
import com.neuedu.wemall.dao.entity.User;


/**
* Author lu
* Date   2025-09-08 15:17:25
*/
public interface IUserService extends IService<User> {

   /**
    * 分页查询用户
    *
    * @param pageNum  页码
    * @param pageSize 每页数量
    * @param keyword  搜索关键词
    * @param user     查询条件
    * @return
    */
    Page<User> selectPageList(int pageNum, int pageSize,String keyword,User user);


    /**
     * 根据ID查询返回一个对象
     *
     * @param userId
     * @return
     */
    User selectById(Integer userId);


    /**
     * 根据ID删除
     *
     * @param userId
     * @return
     */
    int deleteById(Integer userId);

    /**
     * 添加系统用户
     *
     * @param user
     * @return
     */
    ResponseData insert(User user);

    /**
     * 根据ID修改
     *
     * @param user
     * @return
     */
    ResponseData modifyById(User user);

    /**
     * 修改密码
     *
     * @param newPassword 新密码(加密前)
     * @param rePassword  新确认密码(加密前)
     * @param oldPassword 旧密码(加密前)
     * @param userId      用户ID
     * @return
     */
    ResponseData modifyPassword(String newPassword, String rePassword, String oldPassword, int userId);

    /**
     * 登录
     *
     * @param account
     * @param password
     * @return
     */
    User loginUser(String account, String password);
    /**
     * 为用户设置角色
     *
     * @param userId
     * @param roleIds
     * @return
     */
    int  setUserRoles(int userId,int[] roleIds);
    /**
     * 中的超级管理员数量
     *
     * @return
     */
    long countSuperUser();

    /**
     * 检查用户密码是否为默认密码
     *
     * @param user 用户
     * @return
     */
    boolean isDefaultPassword(User user);
}